home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1999 July: Mac OS SDK / Dev.CD Jul 99 SDK1.toast / Development Kits / Mac OS / QuickDraw3D 1.6 SDK / Mac Interfaces / CIncludes / QD3DGeometry.h < prev    next >
Encoding:
C/C++ Source or Header  |  1999-05-18  |  62.9 KB  |  2,114 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        QD3DGeometry.h
  3.  
  4.      Contains:    Q3Geometry methods                                        
  5.  
  6.      Version:    Technology:    Quickdraw 3D 1.6
  7.                  Release:    QuickTime 4.0
  8.  
  9.      Copyright:    © 1995-1999 by Apple Computer, Inc., all rights reserved.
  10.  
  11.      Bugs?:        For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __QD3DGEOMETRY__
  18. #define __QD3DGEOMETRY__
  19.  
  20. #ifndef __QD3D__
  21. #include <QD3D.h>
  22. #endif
  23.  
  24. #ifndef __QD3DSET__
  25. #include <QD3DSet.h>
  26. #endif
  27.  
  28.  
  29.  
  30. #if PRAGMA_ONCE
  31. #pragma once
  32. #endif
  33.  
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37.  
  38. #if PRAGMA_IMPORT
  39. #pragma import on
  40. #endif
  41.  
  42. #if PRAGMA_STRUCT_ALIGN
  43.     #pragma options align=power
  44. #elif PRAGMA_STRUCT_PACKPUSH
  45.     #pragma pack(push, 2)
  46. #elif PRAGMA_STRUCT_PACK
  47.     #pragma pack(2)
  48. #endif
  49.  
  50. #if PRAGMA_ENUM_ALWAYSINT
  51.     #pragma enumsalwaysint on
  52. #elif PRAGMA_ENUM_OPTIONS
  53.     #pragma option enum=int
  54. #elif PRAGMA_ENUM_PACK
  55.     #if __option(pack_enums)
  56.         #define PRAGMA_ENUM_PACK__QD3DGEOMETRY__
  57.     #endif
  58.     #pragma options(!pack_enums)
  59. #endif
  60.  
  61. /******************************************************************************
  62.  **                                                                             **
  63.  **                                Geometry Routines                             **
  64.  **                                                                             **
  65.  *****************************************************************************/
  66. EXTERN_API_C( TQ3ObjectType )
  67. Q3Geometry_GetType                (TQ3GeometryObject         geometry);
  68.  
  69. EXTERN_API_C( TQ3Status )
  70. Q3Geometry_GetAttributeSet        (TQ3GeometryObject         geometry,
  71.                                  TQ3AttributeSet *        attributeSet);
  72.  
  73. EXTERN_API_C( TQ3Status )
  74. Q3Geometry_SetAttributeSet        (TQ3GeometryObject         geometry,
  75.                                  TQ3AttributeSet         attributeSet);
  76.  
  77. EXTERN_API_C( TQ3Status )
  78. Q3Geometry_Submit                (TQ3GeometryObject         geometry,
  79.                                  TQ3ViewObject             view);
  80.  
  81.  
  82.  
  83. /******************************************************************************
  84.  **                                                                             **
  85.  **                            Box    Data Structure Definitions                     **
  86.  **                                                                             **
  87.  *****************************************************************************/
  88.  
  89. struct TQ3BoxData {
  90.     TQ3Point3D                         origin;
  91.     TQ3Vector3D                     orientation;
  92.     TQ3Vector3D                     majorAxis;
  93.     TQ3Vector3D                     minorAxis;
  94.     TQ3AttributeSet *                faceAttributeSet;            /* Ordering : Left, right,     */
  95.                                                                 /*              front, back,     */
  96.                                                                 /*              top, bottom    */
  97.     TQ3AttributeSet                 boxAttributeSet;
  98. };
  99. typedef struct TQ3BoxData                TQ3BoxData;
  100. /******************************************************************************
  101.  **                                                                             **
  102.  **                                Box Routines                                 **
  103.  **                                                                             **
  104.  *****************************************************************************/
  105. EXTERN_API_C( TQ3GeometryObject )
  106. Q3Box_New                        (const TQ3BoxData *        boxData);
  107.  
  108. EXTERN_API_C( TQ3Status )
  109. Q3Box_Submit                    (const TQ3BoxData *        boxData,
  110.                                  TQ3ViewObject             view);
  111.  
  112. EXTERN_API_C( TQ3Status )
  113. Q3Box_SetData                    (TQ3GeometryObject         box,
  114.                                  const TQ3BoxData *        boxData);
  115.  
  116. EXTERN_API_C( TQ3Status )
  117. Q3Box_GetData                    (TQ3GeometryObject         box,
  118.                                  TQ3BoxData *            boxData);
  119.  
  120. EXTERN_API_C( TQ3Status )
  121. Q3Box_EmptyData                    (TQ3BoxData *            boxData);
  122.  
  123. EXTERN_API_C( TQ3Status )
  124. Q3Box_SetOrigin                    (TQ3GeometryObject         box,
  125.                                  const TQ3Point3D *        origin);
  126.  
  127. EXTERN_API_C( TQ3Status )
  128. Q3Box_SetOrientation            (TQ3GeometryObject         box,
  129.                                  const TQ3Vector3D *    orientation);
  130.  
  131. EXTERN_API_C( TQ3Status )
  132. Q3Box_SetMajorAxis                (TQ3GeometryObject         box,
  133.                                  const TQ3Vector3D *    majorAxis);
  134.  
  135. EXTERN_API_C( TQ3Status )
  136. Q3Box_SetMinorAxis                (TQ3GeometryObject         box,
  137.                                  const TQ3Vector3D *    minorAxis);
  138.  
  139. EXTERN_API_C( TQ3Status )
  140. Q3Box_GetOrigin                    (TQ3GeometryObject         box,
  141.                                  TQ3Point3D *            origin);
  142.  
  143. EXTERN_API_C( TQ3Status )
  144. Q3Box_GetOrientation            (TQ3GeometryObject         box,
  145.                                  TQ3Vector3D *            orientation);
  146.  
  147. EXTERN_API_C( TQ3Status )
  148. Q3Box_GetMajorAxis                (TQ3GeometryObject         box,
  149.                                  TQ3Vector3D *            majorAxis);
  150.  
  151. EXTERN_API_C( TQ3Status )
  152. Q3Box_GetMinorAxis                (TQ3GeometryObject         box,
  153.                                  TQ3Vector3D *            minorAxis);
  154.  
  155. EXTERN_API_C( TQ3Status )
  156. Q3Box_GetFaceAttributeSet        (TQ3GeometryObject         box,
  157.                                  unsigned long             faceIndex,
  158.                                  TQ3AttributeSet *        faceAttributeSet);
  159.  
  160. EXTERN_API_C( TQ3Status )
  161. Q3Box_SetFaceAttributeSet        (TQ3GeometryObject         box,
  162.                                  unsigned long             faceIndex,
  163.                                  TQ3AttributeSet         faceAttributeSet);
  164.  
  165.  
  166.  
  167. /******************************************************************************
  168.  **                                                                             **
  169.  **                        Cone Data Structure Definitions                          **
  170.  **                                                                             **
  171.  *****************************************************************************/
  172.  
  173. struct TQ3ConeData {
  174.     TQ3Point3D                         origin;
  175.     TQ3Vector3D                     orientation;
  176.     TQ3Vector3D                     majorRadius;
  177.     TQ3Vector3D                     minorRadius;
  178.     float                             uMin;
  179.     float                             uMax;
  180.     float                             vMin;
  181.     float                             vMax;
  182.     TQ3EndCap                         caps;
  183.     TQ3AttributeSet                 interiorAttributeSet;
  184.     TQ3AttributeSet                 faceAttributeSet;
  185.     TQ3AttributeSet                 bottomAttributeSet;
  186.     TQ3AttributeSet                 coneAttributeSet;
  187. };
  188. typedef struct TQ3ConeData                TQ3ConeData;
  189. /******************************************************************************
  190.  **                                                                             **
  191.  **                                Cone Routines                                 **
  192.  **                                                                             **
  193.  *****************************************************************************/
  194. EXTERN_API_C( TQ3GeometryObject )
  195. Q3Cone_New                        (const TQ3ConeData *    coneData);
  196.  
  197. EXTERN_API_C( TQ3Status )
  198. Q3Cone_Submit                    (const TQ3ConeData *    coneData,
  199.                                  TQ3ViewObject             view);
  200.  
  201. EXTERN_API_C( TQ3Status )
  202. Q3Cone_SetData                    (TQ3GeometryObject         cone,
  203.                                  const TQ3ConeData *    coneData);
  204.  
  205. EXTERN_API_C( TQ3Status )
  206. Q3Cone_GetData                    (TQ3GeometryObject         cone,
  207.                                  TQ3ConeData *            coneData);
  208.  
  209. EXTERN_API_C( TQ3Status )
  210. Q3Cone_SetOrigin                (TQ3GeometryObject         cone,
  211.                                  const TQ3Point3D *        origin);
  212.  
  213. EXTERN_API_C( TQ3Status )
  214. Q3Cone_SetOrientation            (TQ3GeometryObject         cone,
  215.                                  const TQ3Vector3D *    orientation);
  216.  
  217. EXTERN_API_C( TQ3Status )
  218. Q3Cone_SetMajorRadius            (TQ3GeometryObject         cone,
  219.                                  const TQ3Vector3D *    majorRadius);
  220.  
  221. EXTERN_API_C( TQ3Status )
  222. Q3Cone_SetMinorRadius            (TQ3GeometryObject         cone,
  223.                                  const TQ3Vector3D *    minorRadius);
  224.  
  225. EXTERN_API_C( TQ3Status )
  226. Q3Cone_GetOrigin                (TQ3GeometryObject         cone,
  227.                                  TQ3Point3D *            origin);
  228.  
  229. EXTERN_API_C( TQ3Status )
  230. Q3Cone_GetOrientation            (TQ3GeometryObject         cone,
  231.                                  TQ3Vector3D *            orientation);
  232.  
  233. EXTERN_API_C( TQ3Status )
  234. Q3Cone_GetMajorRadius            (TQ3GeometryObject         cone,
  235.                                  TQ3Vector3D *            majorRadius);
  236.  
  237. EXTERN_API_C( TQ3Status )
  238. Q3Cone_GetMinorRadius            (TQ3GeometryObject         cone,
  239.                                  TQ3Vector3D *            minorRadius);
  240.  
  241. EXTERN_API_C( TQ3Status )
  242. Q3Cone_SetCaps                    (TQ3GeometryObject         cone,
  243.                                  TQ3EndCap                 caps);
  244.  
  245. EXTERN_API_C( TQ3Status )
  246. Q3Cone_GetCaps                    (TQ3GeometryObject         cone,
  247.                                  TQ3EndCap *            caps);
  248.  
  249. EXTERN_API_C( TQ3Status )
  250. Q3Cone_SetBottomAttributeSet    (TQ3GeometryObject         cone,
  251.                                  TQ3AttributeSet         bottomAttributeSet);
  252.  
  253. EXTERN_API_C( TQ3Status )
  254. Q3Cone_GetBottomAttributeSet    (TQ3GeometryObject         cone,
  255.                                  TQ3AttributeSet *        bottomAttributeSet);
  256.  
  257. EXTERN_API_C( TQ3Status )
  258. Q3Cone_SetFaceAttributeSet        (TQ3GeometryObject         cone,
  259.                                  TQ3AttributeSet         faceAttributeSet);
  260.  
  261. EXTERN_API_C( TQ3Status )
  262. Q3Cone_GetFaceAttributeSet        (TQ3GeometryObject         cone,
  263.                                  TQ3AttributeSet *        faceAttributeSet);
  264.  
  265. EXTERN_API_C( TQ3Status )
  266. Q3Cone_EmptyData                (TQ3ConeData *            coneData);
  267.  
  268.  
  269.  
  270.  
  271. /******************************************************************************
  272.  **                                                                             **
  273.  **                        Cylinder Data Structure Definitions                     **
  274.  **                                                                             **
  275.  *****************************************************************************/
  276.  
  277. struct TQ3CylinderData {
  278.     TQ3Point3D                         origin;
  279.     TQ3Vector3D                     orientation;
  280.     TQ3Vector3D                     majorRadius;
  281.     TQ3Vector3D                     minorRadius;
  282.     float                             uMin;
  283.     float                             uMax;
  284.     float                             vMin;
  285.     float                             vMax;
  286.     TQ3EndCap                         caps;
  287.     TQ3AttributeSet                 interiorAttributeSet;
  288.     TQ3AttributeSet                 topAttributeSet;
  289.     TQ3AttributeSet                 faceAttributeSet;
  290.     TQ3AttributeSet                 bottomAttributeSet;
  291.     TQ3AttributeSet                 cylinderAttributeSet;
  292. };
  293. typedef struct TQ3CylinderData            TQ3CylinderData;
  294. /******************************************************************************
  295.  **                                                                             **
  296.  **                            Cylinder Routines                                 **
  297.  **                                                                             **
  298.  *****************************************************************************/
  299. EXTERN_API_C( TQ3GeometryObject )
  300. Q3Cylinder_New                    (const TQ3CylinderData * cylinderData);
  301.  
  302. EXTERN_API_C( TQ3Status )
  303. Q3Cylinder_Submit                (const TQ3CylinderData * cylinderData,
  304.                                  TQ3ViewObject             view);
  305.  
  306. EXTERN_API_C( TQ3Status )
  307. Q3Cylinder_SetData                (TQ3GeometryObject         cylinder,
  308.                                  const TQ3CylinderData * cylinderData);
  309.  
  310. EXTERN_API_C( TQ3Status )
  311. Q3Cylinder_GetData                (TQ3GeometryObject         cylinder,
  312.                                  TQ3CylinderData *        cylinderData);
  313.  
  314. EXTERN_API_C( TQ3Status )
  315. Q3Cylinder_SetOrigin            (TQ3GeometryObject         cylinder,
  316.                                  const TQ3Point3D *        origin);
  317.  
  318. EXTERN_API_C( TQ3Status )
  319. Q3Cylinder_SetOrientation        (TQ3GeometryObject         cylinder,
  320.                                  const TQ3Vector3D *    orientation);
  321.  
  322. EXTERN_API_C( TQ3Status )
  323. Q3Cylinder_SetMajorRadius        (TQ3GeometryObject         cylinder,
  324.                                  const TQ3Vector3D *    majorRadius);
  325.  
  326. EXTERN_API_C( TQ3Status )
  327. Q3Cylinder_SetMinorRadius        (TQ3GeometryObject         cylinder,
  328.                                  const TQ3Vector3D *    minorRadius);
  329.  
  330. EXTERN_API_C( TQ3Status )
  331. Q3Cylinder_GetOrigin            (TQ3GeometryObject         cylinder,
  332.                                  TQ3Point3D *            origin);
  333.  
  334. EXTERN_API_C( TQ3Status )
  335. Q3Cylinder_GetOrientation        (TQ3GeometryObject         cylinder,
  336.                                  TQ3Vector3D *            orientation);
  337.  
  338. EXTERN_API_C( TQ3Status )
  339. Q3Cylinder_GetMajorRadius        (TQ3GeometryObject         cylinder,
  340.                                  TQ3Vector3D *            majorRadius);
  341.  
  342. EXTERN_API_C( TQ3Status )
  343. Q3Cylinder_GetMinorRadius        (TQ3GeometryObject         cylinder,
  344.                                  TQ3Vector3D *            minorRadius);
  345.  
  346.  
  347. EXTERN_API_C( TQ3Status )
  348. Q3Cylinder_SetCaps                (TQ3GeometryObject         cylinder,
  349.                                  TQ3EndCap                 caps);
  350.  
  351. EXTERN_API_C( TQ3Status )
  352. Q3Cylinder_GetCaps                (TQ3GeometryObject         cylinder,
  353.                                  TQ3EndCap *            caps);
  354.  
  355.  
  356. EXTERN_API_C( TQ3Status )
  357. Q3Cylinder_SetTopAttributeSet    (TQ3GeometryObject         cylinder,
  358.                                  TQ3AttributeSet         topAttributeSet);
  359.  
  360. EXTERN_API_C( TQ3Status )
  361. Q3Cylinder_GetTopAttributeSet    (TQ3GeometryObject         cylinder,
  362.                                  TQ3AttributeSet *        topAttributeSet);
  363.  
  364. EXTERN_API_C( TQ3Status )
  365. Q3Cylinder_SetBottomAttributeSet (TQ3GeometryObject     cylinder,
  366.                                  TQ3AttributeSet         bottomAttributeSet);
  367.  
  368. EXTERN_API_C( TQ3Status )
  369. Q3Cylinder_GetBottomAttributeSet (TQ3GeometryObject     cylinder,
  370.                                  TQ3AttributeSet *        bottomAttributeSet);
  371.  
  372. EXTERN_API_C( TQ3Status )
  373. Q3Cylinder_SetFaceAttributeSet    (TQ3GeometryObject         cylinder,
  374.                                  TQ3AttributeSet         faceAttributeSet);
  375.  
  376. EXTERN_API_C( TQ3Status )
  377. Q3Cylinder_GetFaceAttributeSet    (TQ3GeometryObject         cylinder,
  378.                                  TQ3AttributeSet *        faceAttributeSet);
  379.  
  380. EXTERN_API_C( TQ3Status )
  381. Q3Cylinder_EmptyData            (TQ3CylinderData *        cylinderData);
  382.  
  383.  
  384.  
  385.  
  386. /******************************************************************************
  387.  **                                                                             **
  388.  **                        Disk Data Structure Definitions                         **
  389.  **                                                                             **
  390.  *****************************************************************************/
  391.  
  392. struct TQ3DiskData {
  393.     TQ3Point3D                         origin;
  394.     TQ3Vector3D                     majorRadius;
  395.     TQ3Vector3D                     minorRadius;
  396.     float                             uMin;
  397.     float                             uMax;
  398.     float                             vMin;
  399.     float                             vMax;
  400.     TQ3AttributeSet                 diskAttributeSet;
  401. };
  402. typedef struct TQ3DiskData                TQ3DiskData;
  403. /******************************************************************************
  404.  **                                                                             **
  405.  **                                Disk Routines                                  **
  406.  **                                                                             **
  407.  *****************************************************************************/
  408. EXTERN_API_C( TQ3GeometryObject )
  409. Q3Disk_New                        (const TQ3DiskData *    diskData);
  410.  
  411. EXTERN_API_C( TQ3Status )
  412. Q3Disk_Submit                    (const TQ3DiskData *    diskData,
  413.                                  TQ3ViewObject             view);
  414.  
  415. EXTERN_API_C( TQ3Status )
  416. Q3Disk_SetData                    (TQ3GeometryObject         disk,
  417.                                  const TQ3DiskData *    diskData);
  418.  
  419. EXTERN_API_C( TQ3Status )
  420. Q3Disk_GetData                    (TQ3GeometryObject         disk,
  421.                                  TQ3DiskData *            diskData);
  422.  
  423. EXTERN_API_C( TQ3Status )
  424. Q3Disk_SetOrigin                (TQ3GeometryObject         disk,
  425.                                  const TQ3Point3D *        origin);
  426.  
  427. EXTERN_API_C( TQ3Status )
  428. Q3Disk_SetMajorRadius            (TQ3GeometryObject         disk,
  429.                                  const TQ3Vector3D *    majorRadius);
  430.  
  431. EXTERN_API_C( TQ3Status )
  432. Q3Disk_SetMinorRadius            (TQ3GeometryObject         disk,
  433.                                  const TQ3Vector3D *    minorRadius);
  434.  
  435. EXTERN_API_C( TQ3Status )
  436. Q3Disk_GetOrigin                (TQ3GeometryObject         disk,
  437.                                  TQ3Point3D *            origin);
  438.  
  439. EXTERN_API_C( TQ3Status )
  440. Q3Disk_GetMajorRadius            (TQ3GeometryObject         disk,
  441.                                  TQ3Vector3D *            majorRadius);
  442.  
  443. EXTERN_API_C( TQ3Status )
  444. Q3Disk_GetMinorRadius            (TQ3GeometryObject         disk,
  445.                                  TQ3Vector3D *            minorRadius);
  446.  
  447.  
  448. EXTERN_API_C( TQ3Status )
  449. Q3Disk_EmptyData                (TQ3DiskData *            diskData);
  450.  
  451.  
  452.  
  453.  
  454. /******************************************************************************
  455.  **                                                                             **
  456.  **                     Ellipse Data Structure Definitions                         **
  457.  **                                                                             **
  458.  *****************************************************************************/
  459.  
  460. struct TQ3EllipseData {
  461.     TQ3Point3D                         origin;
  462.     TQ3Vector3D                     majorRadius;
  463.     TQ3Vector3D                     minorRadius;
  464.     float                             uMin;
  465.     float                             uMax;
  466.     TQ3AttributeSet                 ellipseAttributeSet;
  467. };
  468. typedef struct TQ3EllipseData            TQ3EllipseData;
  469. /******************************************************************************
  470.  **                                                                             **
  471.  **                                Ellipse Routines                             **
  472.  **                                                                             **
  473.  *****************************************************************************/
  474. EXTERN_API_C( TQ3GeometryObject )
  475. Q3Ellipse_New                    (const TQ3EllipseData *    ellipseData);
  476.  
  477. EXTERN_API_C( TQ3Status )
  478. Q3Ellipse_Submit                (const TQ3EllipseData *    ellipseData,
  479.                                  TQ3ViewObject             view);
  480.  
  481. EXTERN_API_C( TQ3Status )
  482. Q3Ellipse_SetData                (TQ3GeometryObject         ellipse,
  483.                                  const TQ3EllipseData *    ellipseData);
  484.  
  485. EXTERN_API_C( TQ3Status )
  486. Q3Ellipse_GetData                (TQ3GeometryObject         ellipse,
  487.                                  TQ3EllipseData *        ellipseData);
  488.  
  489. EXTERN_API_C( TQ3Status )
  490. Q3Ellipse_SetOrigin                (TQ3GeometryObject         ellipse,
  491.                                  const TQ3Point3D *        origin);
  492.  
  493. EXTERN_API_C( TQ3Status )
  494. Q3Ellipse_SetMajorRadius        (TQ3GeometryObject         ellipse,
  495.                                  const TQ3Vector3D *    majorRadius);
  496.  
  497. EXTERN_API_C( TQ3Status )
  498. Q3Ellipse_SetMinorRadius        (TQ3GeometryObject         ellipse,
  499.                                  const TQ3Vector3D *    minorRadius);
  500.  
  501. EXTERN_API_C( TQ3Status )
  502. Q3Ellipse_GetOrigin                (TQ3GeometryObject         ellipse,
  503.                                  TQ3Point3D *            origin);
  504.  
  505. EXTERN_API_C( TQ3Status )
  506. Q3Ellipse_GetMajorRadius        (TQ3GeometryObject         ellipse,
  507.                                  TQ3Vector3D *            majorRadius);
  508.  
  509. EXTERN_API_C( TQ3Status )
  510. Q3Ellipse_GetMinorRadius        (TQ3GeometryObject         ellipse,
  511.                                  TQ3Vector3D *            minorRadius);
  512.  
  513.  
  514. EXTERN_API_C( TQ3Status )
  515. Q3Ellipse_EmptyData                (TQ3EllipseData *        ellipseData);
  516.  
  517.  
  518.  
  519.  
  520. /******************************************************************************
  521.  **                                                                          **
  522.  **                            Ellipsoid Data structures                         **
  523.  **                                                                          **
  524.  *****************************************************************************/
  525.  
  526. struct TQ3EllipsoidData {
  527.     TQ3Point3D                         origin;
  528.     TQ3Vector3D                     orientation;
  529.     TQ3Vector3D                     majorRadius;
  530.     TQ3Vector3D                     minorRadius;
  531.     float                             uMin;
  532.     float                             uMax;
  533.     float                             vMin;
  534.     float                             vMax;
  535.     TQ3EndCap                         caps;
  536.     TQ3AttributeSet                 interiorAttributeSet;
  537.     TQ3AttributeSet                 ellipsoidAttributeSet;
  538. };
  539. typedef struct TQ3EllipsoidData            TQ3EllipsoidData;
  540. /******************************************************************************
  541.  **                                                                          **
  542.  **                            Ellipsoid Routines                                **
  543.  **                                                                          **
  544.  *****************************************************************************/
  545. EXTERN_API_C( TQ3GeometryObject )
  546. Q3Ellipsoid_New                    (const TQ3EllipsoidData * ellipsoidData);
  547.  
  548. EXTERN_API_C( TQ3Status )
  549. Q3Ellipsoid_Submit                (const TQ3EllipsoidData * ellipsoidData,
  550.                                  TQ3ViewObject             view);
  551.  
  552. EXTERN_API_C( TQ3Status )
  553. Q3Ellipsoid_SetData                (TQ3GeometryObject         ellipsoid,
  554.                                  const TQ3EllipsoidData * ellipsoidData);
  555.  
  556. EXTERN_API_C( TQ3Status )
  557. Q3Ellipsoid_GetData                (TQ3GeometryObject         ellipsoid,
  558.                                  TQ3EllipsoidData *        ellipsoidData);
  559.  
  560. EXTERN_API_C( TQ3Status )
  561. Q3Ellipsoid_SetOrigin            (TQ3GeometryObject         ellipsoid,
  562.                                  const TQ3Point3D *        origin);
  563.  
  564. EXTERN_API_C( TQ3Status )
  565. Q3Ellipsoid_SetOrientation        (TQ3GeometryObject         ellipsoid,
  566.                                  const TQ3Vector3D *    orientation);
  567.  
  568. EXTERN_API_C( TQ3Status )
  569. Q3Ellipsoid_SetMajorRadius        (TQ3GeometryObject         ellipsoid,
  570.                                  const TQ3Vector3D *    majorRadius);
  571.  
  572. EXTERN_API_C( TQ3Status )
  573. Q3Ellipsoid_SetMinorRadius        (TQ3GeometryObject         ellipsoid,
  574.                                  const TQ3Vector3D *    minorRadius);
  575.  
  576. EXTERN_API_C( TQ3Status )
  577. Q3Ellipsoid_GetOrigin            (TQ3GeometryObject         ellipsoid,
  578.                                  TQ3Point3D *            origin);
  579.  
  580. EXTERN_API_C( TQ3Status )
  581. Q3Ellipsoid_GetOrientation        (TQ3GeometryObject         ellipsoid,
  582.                                  TQ3Vector3D *            orientation);
  583.  
  584. EXTERN_API_C( TQ3Status )
  585. Q3Ellipsoid_GetMajorRadius        (TQ3GeometryObject         ellipsoid,
  586.                                  TQ3Vector3D *            majorRadius);
  587.  
  588. EXTERN_API_C( TQ3Status )
  589. Q3Ellipsoid_GetMinorRadius        (TQ3GeometryObject         ellipsoid,
  590.                                  TQ3Vector3D *            minorRadius);
  591.  
  592. EXTERN_API_C( TQ3Status )
  593. Q3Ellipsoid_EmptyData            (TQ3EllipsoidData *        ellipsoidData);
  594.  
  595.  
  596.  
  597.  
  598. /******************************************************************************
  599.  **                                                                             **
  600.  **                    General Polygon Data Structure Definitions                 **
  601.  **                                                                             **
  602.  *****************************************************************************/
  603.  
  604. enum TQ3GeneralPolygonShapeHint {
  605.     kQ3GeneralPolygonShapeHintComplex = 0,
  606.     kQ3GeneralPolygonShapeHintConcave = 1,
  607.     kQ3GeneralPolygonShapeHintConvex = 2
  608. };
  609. typedef enum TQ3GeneralPolygonShapeHint TQ3GeneralPolygonShapeHint;
  610.  
  611.  
  612. struct TQ3GeneralPolygonContourData {
  613.     unsigned long                     numVertices;
  614.     TQ3Vertex3D *                    vertices;
  615. };
  616. typedef struct TQ3GeneralPolygonContourData TQ3GeneralPolygonContourData;
  617.  
  618. struct TQ3GeneralPolygonData {
  619.     unsigned long                     numContours;
  620.     TQ3GeneralPolygonContourData *    contours;
  621.     TQ3GeneralPolygonShapeHint         shapeHint;
  622.     TQ3AttributeSet                 generalPolygonAttributeSet;
  623. };
  624. typedef struct TQ3GeneralPolygonData    TQ3GeneralPolygonData;
  625. /******************************************************************************
  626.  **                                                                             **
  627.  **                            General polygon Routines                         **
  628.  **                                                                             **
  629.  *****************************************************************************/
  630. EXTERN_API_C( TQ3GeometryObject )
  631. Q3GeneralPolygon_New            (const TQ3GeneralPolygonData * generalPolygonData);
  632.  
  633. EXTERN_API_C( TQ3Status )
  634. Q3GeneralPolygon_Submit            (const TQ3GeneralPolygonData * generalPolygonData,
  635.                                  TQ3ViewObject             view);
  636.  
  637. EXTERN_API_C( TQ3Status )
  638. Q3GeneralPolygon_SetData        (TQ3GeometryObject         generalPolygon,
  639.                                  const TQ3GeneralPolygonData * generalPolygonData);
  640.  
  641. EXTERN_API_C( TQ3Status )
  642. Q3GeneralPolygon_GetData        (TQ3GeometryObject         polygon,
  643.                                  TQ3GeneralPolygonData * generalPolygonData);
  644.  
  645. EXTERN_API_C( TQ3Status )
  646. Q3GeneralPolygon_EmptyData        (TQ3GeneralPolygonData * generalPolygonData);
  647.  
  648. EXTERN_API_C( TQ3Status )
  649. Q3GeneralPolygon_GetVertexPosition (TQ3GeometryObject     generalPolygon,
  650.                                  unsigned long             contourIndex,
  651.                                  unsigned long             pointIndex,
  652.                                  TQ3Point3D *            position);
  653.  
  654. EXTERN_API_C( TQ3Status )
  655. Q3GeneralPolygon_SetVertexPosition (TQ3GeometryObject     generalPolygon,
  656.                                  unsigned long             contourIndex,
  657.                                  unsigned long             pointIndex,
  658.                                  const TQ3Point3D *        position);
  659.  
  660. EXTERN_API_C( TQ3Status )
  661. Q3GeneralPolygon_GetVertexAttributeSet (TQ3GeometryObject  generalPolygon,
  662.                                  unsigned long             contourIndex,
  663.                                  unsigned long             pointIndex,
  664.                                  TQ3AttributeSet *        attributeSet);
  665.  
  666. EXTERN_API_C( TQ3Status )
  667. Q3GeneralPolygon_SetVertexAttributeSet (TQ3GeometryObject  generalPolygon,
  668.                                  unsigned long             contourIndex,
  669.                                  unsigned long             pointIndex,
  670.                                  TQ3AttributeSet         attributeSet);
  671.  
  672. EXTERN_API_C( TQ3Status )
  673. Q3GeneralPolygon_SetShapeHint    (TQ3GeometryObject         generalPolygon,
  674.                                  TQ3GeneralPolygonShapeHint  shapeHint);
  675.  
  676. EXTERN_API_C( TQ3Status )
  677. Q3GeneralPolygon_GetShapeHint    (TQ3GeometryObject         generalPolygon,
  678.                                  TQ3GeneralPolygonShapeHint * shapeHint);
  679.  
  680.  
  681.  
  682.  
  683. /******************************************************************************
  684.  **                                                                             **
  685.  **                        Line Data Structure Definitions                         **
  686.  **                                                                             **
  687.  *****************************************************************************/
  688.  
  689. struct TQ3LineData {
  690.     TQ3Vertex3D                     vertices[2];
  691.     TQ3AttributeSet                 lineAttributeSet;
  692. };
  693. typedef struct TQ3LineData                TQ3LineData;
  694. /******************************************************************************
  695.  **                                                                             **
  696.  **                            Line Routines                                     **
  697.  **                                                                             **
  698.  *****************************************************************************/
  699. EXTERN_API_C( TQ3GeometryObject )
  700. Q3Line_New                        (const TQ3LineData *    lineData);
  701.  
  702. EXTERN_API_C( TQ3Status )
  703. Q3Line_Submit                    (const TQ3LineData *    lineData,
  704.                                  TQ3ViewObject             view);
  705.  
  706. EXTERN_API_C( TQ3Status )
  707. Q3Line_GetData                    (TQ3GeometryObject         line,
  708.                                  TQ3LineData *            lineData);
  709.  
  710. EXTERN_API_C( TQ3Status )
  711. Q3Line_SetData                    (TQ3GeometryObject         line,
  712.                                  const TQ3LineData *    lineData);
  713.  
  714. EXTERN_API_C( TQ3Status )
  715. Q3Line_GetVertexPosition        (TQ3GeometryObject         line,
  716.                                  unsigned long             index,
  717.                                  TQ3Point3D *            position);
  718.  
  719. EXTERN_API_C( TQ3Status )
  720. Q3Line_SetVertexPosition        (TQ3GeometryObject         line,
  721.                                  unsigned long             index,
  722.                                  const TQ3Point3D *        position);
  723.  
  724. EXTERN_API_C( TQ3Status )
  725. Q3Line_GetVertexAttributeSet    (TQ3GeometryObject         line,
  726.                                  unsigned long             index,
  727.                                  TQ3AttributeSet *        attributeSet);
  728.  
  729. EXTERN_API_C( TQ3Status )
  730. Q3Line_SetVertexAttributeSet    (TQ3GeometryObject         line,
  731.                                  unsigned long             index,
  732.                                  TQ3AttributeSet         attributeSet);
  733.  
  734. EXTERN_API_C( TQ3Status )
  735. Q3Line_EmptyData                (TQ3LineData *            lineData);
  736.  
  737.  
  738.  
  739.  
  740. /******************************************************************************
  741.  **                                                                             **
  742.  **                        Marker Data Structure Definitions                     **
  743.  **                                                                             **
  744.  *****************************************************************************/
  745.  
  746. struct TQ3MarkerData {
  747.     TQ3Point3D                         location;
  748.     long                             xOffset;
  749.     long                             yOffset;
  750.     TQ3Bitmap                         bitmap;
  751.     TQ3AttributeSet                 markerAttributeSet;
  752. };
  753. typedef struct TQ3MarkerData            TQ3MarkerData;
  754. /******************************************************************************
  755.  **                                                                             **
  756.  **                                Marker Routines                                 **
  757.  **                                                                             **
  758.  *****************************************************************************/
  759. EXTERN_API_C( TQ3GeometryObject )
  760. Q3Marker_New                    (const TQ3MarkerData *    markerData);
  761.  
  762. EXTERN_API_C( TQ3Status )
  763. Q3Marker_Submit                    (const TQ3MarkerData *    markerData,
  764.                                  TQ3ViewObject             view);
  765.  
  766. EXTERN_API_C( TQ3Status )
  767. Q3Marker_SetData                (TQ3GeometryObject         geometry,
  768.                                  const TQ3MarkerData *    markerData);
  769.  
  770. EXTERN_API_C( TQ3Status )
  771. Q3Marker_GetData                (TQ3GeometryObject         geometry,
  772.                                  TQ3MarkerData *        markerData);
  773.  
  774. EXTERN_API_C( TQ3Status )
  775. Q3Marker_EmptyData                (TQ3MarkerData *        markerData);
  776.  
  777. EXTERN_API_C( TQ3Status )
  778. Q3Marker_GetPosition            (TQ3GeometryObject         marker,
  779.                                  TQ3Point3D *            location);
  780.  
  781. EXTERN_API_C( TQ3Status )
  782. Q3Marker_SetPosition            (TQ3GeometryObject         marker,
  783.                                  const TQ3Point3D *        location);
  784.  
  785. EXTERN_API_C( TQ3Status )
  786. Q3Marker_GetXOffset                (TQ3GeometryObject         marker,
  787.                                  long *                    xOffset);
  788.  
  789. EXTERN_API_C( TQ3Status )
  790. Q3Marker_SetXOffset                (TQ3GeometryObject         marker,
  791.                                  long                     xOffset);
  792.  
  793. EXTERN_API_C( TQ3Status )
  794. Q3Marker_GetYOffset                (TQ3GeometryObject         marker,
  795.                                  long *                    yOffset);
  796.  
  797. EXTERN_API_C( TQ3Status )
  798. Q3Marker_SetYOffset                (TQ3GeometryObject         marker,
  799.                                  long                     yOffset);
  800.  
  801. EXTERN_API_C( TQ3Status )
  802. Q3Marker_GetBitmap                (TQ3GeometryObject         marker,
  803.                                  TQ3Bitmap *            bitmap);
  804.  
  805. EXTERN_API_C( TQ3Status )
  806. Q3Marker_SetBitmap                (TQ3GeometryObject         marker,
  807.                                  const TQ3Bitmap *        bitmap);
  808.  
  809.  
  810.  
  811.  
  812. /******************************************************************************
  813.  **                                                                             **
  814.  **                        Mesh Data Structure Definitions                         **
  815.  **                                                                             **
  816.  *****************************************************************************/
  817. typedef struct OpaqueTQ3MeshComponent*     TQ3MeshComponent;
  818. typedef struct OpaqueTQ3MeshVertex*     TQ3MeshVertex;
  819. typedef struct OpaqueTQ3MeshFace*         TQ3MeshFace;
  820. typedef struct OpaqueTQ3MeshEdge*         TQ3MeshEdge;
  821. typedef struct OpaqueTQ3MeshContour*     TQ3MeshContour;
  822. /******************************************************************************
  823.  **                                                                             **
  824.  **                            Mesh Routines                                      **
  825.  **                                                                             **
  826.  *****************************************************************************/
  827. /*
  828.  *  Constructors
  829.  */
  830. EXTERN_API_C( TQ3GeometryObject )
  831. Q3Mesh_New                        (void);
  832.  
  833. EXTERN_API_C( TQ3MeshVertex )
  834. Q3Mesh_VertexNew                (TQ3GeometryObject         mesh,
  835.                                  const TQ3Vertex3D *    vertex);
  836.  
  837. EXTERN_API_C( TQ3MeshFace )
  838. Q3Mesh_FaceNew                    (TQ3GeometryObject         mesh,
  839.                                  unsigned long             numVertices,
  840.                                  const TQ3MeshVertex *    vertices,
  841.                                  TQ3AttributeSet         attributeSet);
  842.  
  843. /*
  844.  *  Destructors
  845.  */
  846. EXTERN_API_C( TQ3Status )
  847. Q3Mesh_VertexDelete                (TQ3GeometryObject         mesh,
  848.                                  TQ3MeshVertex             vertex);
  849.  
  850. EXTERN_API_C( TQ3Status )
  851. Q3Mesh_FaceDelete                (TQ3GeometryObject         mesh,
  852.                                  TQ3MeshFace             face);
  853.  
  854. /*
  855.  * Methods
  856.  */
  857. EXTERN_API_C( TQ3Status )
  858. Q3Mesh_DelayUpdates                (TQ3GeometryObject         mesh);
  859.  
  860. EXTERN_API_C( TQ3Status )
  861. Q3Mesh_ResumeUpdates            (TQ3GeometryObject         mesh);
  862.  
  863. EXTERN_API_C( TQ3MeshContour )
  864. Q3Mesh_FaceToContour            (TQ3GeometryObject         mesh,
  865.                                  TQ3MeshFace             containerFace,
  866.                                  TQ3MeshFace             face);
  867.  
  868. EXTERN_API_C( TQ3MeshFace )
  869. Q3Mesh_ContourToFace            (TQ3GeometryObject         mesh,
  870.                                  TQ3MeshContour         contour);
  871.  
  872. /*
  873.  * Mesh
  874.  */
  875. EXTERN_API_C( TQ3Status )
  876. Q3Mesh_GetNumComponents            (TQ3GeometryObject         mesh,
  877.                                  unsigned long *        numComponents);
  878.  
  879. EXTERN_API_C( TQ3Status )
  880. Q3Mesh_GetNumEdges                (TQ3GeometryObject         mesh,
  881.                                  unsigned long *        numEdges);
  882.  
  883. EXTERN_API_C( TQ3Status )
  884. Q3Mesh_GetNumVertices            (TQ3GeometryObject         mesh,
  885.                                  unsigned long *        numVertices);
  886.  
  887. EXTERN_API_C( TQ3Status )
  888. Q3Mesh_GetNumFaces                (TQ3GeometryObject         mesh,
  889.                                  unsigned long *        numFaces);
  890.  
  891. EXTERN_API_C( TQ3Status )
  892. Q3Mesh_GetNumCorners            (TQ3GeometryObject         mesh,
  893.                                  unsigned long *        numCorners);
  894.  
  895. EXTERN_API_C( TQ3Status )
  896. Q3Mesh_GetOrientable            (TQ3GeometryObject         mesh,
  897.                                  TQ3Boolean *            orientable);
  898.  
  899. /*
  900.  * Component
  901.  */
  902. EXTERN_API_C( TQ3Status )
  903. Q3Mesh_GetComponentNumVertices    (TQ3GeometryObject         mesh,
  904.                                  TQ3MeshComponent         component,
  905.                                  unsigned long *        numVertices);
  906.  
  907. EXTERN_API_C( TQ3Status )
  908. Q3Mesh_GetComponentNumEdges        (TQ3GeometryObject         mesh,
  909.                                  TQ3MeshComponent         component,
  910.                                  unsigned long *        numEdges);
  911.  
  912. EXTERN_API_C( TQ3Status )
  913. Q3Mesh_GetComponentBoundingBox    (TQ3GeometryObject         mesh,
  914.                                  TQ3MeshComponent         component,
  915.                                  TQ3BoundingBox *        boundingBox);
  916.  
  917. EXTERN_API_C( TQ3Status )
  918. Q3Mesh_GetComponentOrientable    (TQ3GeometryObject         mesh,
  919.                                  TQ3MeshComponent         component,
  920.                                  TQ3Boolean *            orientable);
  921.  
  922. /*
  923.  * Vertex
  924.  */
  925. EXTERN_API_C( TQ3Status )
  926. Q3Mesh_GetVertexCoordinates        (TQ3GeometryObject         mesh,
  927.                                  TQ3MeshVertex             vertex,
  928.                                  TQ3Point3D *            coordinates);
  929.  
  930. EXTERN_API_C( TQ3Status )
  931. Q3Mesh_GetVertexIndex            (TQ3GeometryObject         mesh,
  932.                                  TQ3MeshVertex             vertex,
  933.                                  unsigned long *        index);
  934.  
  935. EXTERN_API_C( TQ3Status )
  936. Q3Mesh_GetVertexOnBoundary        (TQ3GeometryObject         mesh,
  937.                                  TQ3MeshVertex             vertex,
  938.                                  TQ3Boolean *            onBoundary);
  939.  
  940. EXTERN_API_C( TQ3Status )
  941. Q3Mesh_GetVertexComponent        (TQ3GeometryObject         mesh,
  942.                                  TQ3MeshVertex             vertex,
  943.                                  TQ3MeshComponent *        component);
  944.  
  945. EXTERN_API_C( TQ3Status )
  946. Q3Mesh_GetVertexAttributeSet    (TQ3GeometryObject         mesh,
  947.                                  TQ3MeshVertex             vertex,
  948.                                  TQ3AttributeSet *        attributeSet);
  949.  
  950.  
  951. EXTERN_API_C( TQ3Status )
  952. Q3Mesh_SetVertexCoordinates        (TQ3GeometryObject         mesh,
  953.                                  TQ3MeshVertex             vertex,
  954.                                  const TQ3Point3D *        coordinates);
  955.  
  956. EXTERN_API_C( TQ3Status )
  957. Q3Mesh_SetVertexAttributeSet    (TQ3GeometryObject         mesh,
  958.                                  TQ3MeshVertex             vertex,
  959.                                  TQ3AttributeSet         attributeSet);
  960.  
  961.  
  962. /*
  963.  * Face
  964.  */
  965. EXTERN_API_C( TQ3Status )
  966. Q3Mesh_GetFaceNumVertices        (TQ3GeometryObject         mesh,
  967.                                  TQ3MeshFace             face,
  968.                                  unsigned long *        numVertices);
  969.  
  970. EXTERN_API_C( TQ3Status )
  971. Q3Mesh_GetFacePlaneEquation        (TQ3GeometryObject         mesh,
  972.                                  TQ3MeshFace             face,
  973.                                  TQ3PlaneEquation *        planeEquation);
  974.  
  975. EXTERN_API_C( TQ3Status )
  976. Q3Mesh_GetFaceNumContours        (TQ3GeometryObject         mesh,
  977.                                  TQ3MeshFace             face,
  978.                                  unsigned long *        numContours);
  979.  
  980. EXTERN_API_C( TQ3Status )
  981. Q3Mesh_GetFaceIndex                (TQ3GeometryObject         mesh,
  982.                                  TQ3MeshFace             face,
  983.                                  unsigned long *        index);
  984.  
  985. EXTERN_API_C( TQ3Status )
  986. Q3Mesh_GetFaceComponent            (TQ3GeometryObject         mesh,
  987.                                  TQ3MeshFace             face,
  988.                                  TQ3MeshComponent *        component);
  989.  
  990. EXTERN_API_C( TQ3Status )
  991. Q3Mesh_GetFaceAttributeSet        (TQ3GeometryObject         mesh,
  992.                                  TQ3MeshFace             face,
  993.                                  TQ3AttributeSet *        attributeSet);
  994.  
  995.  
  996. EXTERN_API_C( TQ3Status )
  997. Q3Mesh_SetFaceAttributeSet        (TQ3GeometryObject         mesh,
  998.                                  TQ3MeshFace             face,
  999.                                  TQ3AttributeSet         attributeSet);
  1000.  
  1001. /*
  1002.  * Edge
  1003.  */
  1004. EXTERN_API_C( TQ3Status )
  1005. Q3Mesh_GetEdgeVertices            (TQ3GeometryObject         mesh,
  1006.                                  TQ3MeshEdge             edge,
  1007.                                  TQ3MeshVertex *        vertex1,
  1008.                                  TQ3MeshVertex *        vertex2);
  1009.  
  1010. EXTERN_API_C( TQ3Status )
  1011. Q3Mesh_GetEdgeFaces                (TQ3GeometryObject         mesh,
  1012.                                  TQ3MeshEdge             edge,
  1013.                                  TQ3MeshFace *            face1,
  1014.                                  TQ3MeshFace *            face2);
  1015.  
  1016. EXTERN_API_C( TQ3Status )
  1017. Q3Mesh_GetEdgeOnBoundary        (TQ3GeometryObject         mesh,
  1018.                                  TQ3MeshEdge             edge,
  1019.                                  TQ3Boolean *            onBoundary);
  1020.  
  1021. EXTERN_API_C( TQ3Status )
  1022. Q3Mesh_GetEdgeComponent            (TQ3GeometryObject         mesh,
  1023.                                  TQ3MeshEdge             edge,
  1024.                                  TQ3MeshComponent *        component);
  1025.  
  1026. EXTERN_API_C( TQ3Status )
  1027. Q3Mesh_GetEdgeAttributeSet        (TQ3GeometryObject         mesh,
  1028.                                  TQ3MeshEdge             edge,
  1029.                                  TQ3AttributeSet *        attributeSet);
  1030.  
  1031.  
  1032. EXTERN_API_C( TQ3Status )
  1033. Q3Mesh_SetEdgeAttributeSet        (TQ3GeometryObject         mesh,
  1034.                                  TQ3MeshEdge             edge,
  1035.                                  TQ3AttributeSet         attributeSet);
  1036.  
  1037. /*
  1038.  * Contour
  1039.  */
  1040. EXTERN_API_C( TQ3Status )
  1041. Q3Mesh_GetContourFace            (TQ3GeometryObject         mesh,
  1042.                                  TQ3MeshContour         contour,
  1043.                                  TQ3MeshFace *            face);
  1044.  
  1045. EXTERN_API_C( TQ3Status )
  1046. Q3Mesh_GetContourNumVertices    (TQ3GeometryObject         mesh,
  1047.                                  TQ3MeshContour         contour,
  1048.                                  unsigned long *        numVertices);
  1049.  
  1050. /*
  1051.  * Corner
  1052.  */
  1053. EXTERN_API_C( TQ3Status )
  1054. Q3Mesh_GetCornerAttributeSet    (TQ3GeometryObject         mesh,
  1055.                                  TQ3MeshVertex             vertex,
  1056.                                  TQ3MeshFace             face,
  1057.                                  TQ3AttributeSet *        attributeSet);
  1058.  
  1059. EXTERN_API_C( TQ3Status )
  1060. Q3Mesh_SetCornerAttributeSet    (TQ3GeometryObject         mesh,
  1061.                                  TQ3MeshVertex             vertex,
  1062.                                  TQ3MeshFace             face,
  1063.                                  TQ3AttributeSet         attributeSet);
  1064.  
  1065.  
  1066. /*
  1067.  * Public Mesh Iterators
  1068.  */
  1069.  
  1070. struct TQ3MeshIterator {
  1071.     void *                            var1;
  1072.     void *                            var2;
  1073.     void *                            var3;
  1074.     struct {
  1075.         void *                            field1;
  1076.         char                             field2[4];
  1077.     }                                 var4;
  1078. };
  1079. typedef struct TQ3MeshIterator            TQ3MeshIterator;
  1080. EXTERN_API_C( TQ3MeshComponent )
  1081. Q3Mesh_FirstMeshComponent        (TQ3GeometryObject         mesh,
  1082.                                  TQ3MeshIterator *        iterator);
  1083.  
  1084. EXTERN_API_C( TQ3MeshComponent )
  1085. Q3Mesh_NextMeshComponent        (TQ3MeshIterator *        iterator);
  1086.  
  1087. EXTERN_API_C( TQ3MeshVertex )
  1088. Q3Mesh_FirstComponentVertex        (TQ3MeshComponent         component,
  1089.                                  TQ3MeshIterator *        iterator);
  1090.  
  1091. EXTERN_API_C( TQ3MeshVertex )
  1092. Q3Mesh_NextComponentVertex        (TQ3MeshIterator *        iterator);
  1093.  
  1094. EXTERN_API_C( TQ3MeshEdge )
  1095. Q3Mesh_FirstComponentEdge        (TQ3MeshComponent         component,
  1096.                                  TQ3MeshIterator *        iterator);
  1097.  
  1098. EXTERN_API_C( TQ3MeshEdge )
  1099. Q3Mesh_NextComponentEdge        (TQ3MeshIterator *        iterator);
  1100.  
  1101. EXTERN_API_C( TQ3MeshVertex )
  1102. Q3Mesh_FirstMeshVertex            (TQ3GeometryObject         mesh,
  1103.                                  TQ3MeshIterator *        iterator);
  1104.  
  1105. EXTERN_API_C( TQ3MeshVertex )
  1106. Q3Mesh_NextMeshVertex            (TQ3MeshIterator *        iterator);
  1107.  
  1108. EXTERN_API_C( TQ3MeshFace )
  1109. Q3Mesh_FirstMeshFace            (TQ3GeometryObject         mesh,
  1110.                                  TQ3MeshIterator *        iterator);
  1111.  
  1112. EXTERN_API_C( TQ3MeshFace )
  1113. Q3Mesh_NextMeshFace                (TQ3MeshIterator *        iterator);
  1114.  
  1115. EXTERN_API_C( TQ3MeshEdge )
  1116. Q3Mesh_FirstMeshEdge            (TQ3GeometryObject         mesh,
  1117.                                  TQ3MeshIterator *        iterator);
  1118.  
  1119. EXTERN_API_C( TQ3MeshEdge )
  1120. Q3Mesh_NextMeshEdge                (TQ3MeshIterator *        iterator);
  1121.  
  1122. EXTERN_API_C( TQ3MeshEdge )
  1123. Q3Mesh_FirstVertexEdge            (TQ3MeshVertex             vertex,
  1124.                                  TQ3MeshIterator *        iterator);
  1125.  
  1126. EXTERN_API_C( TQ3MeshEdge )
  1127. Q3Mesh_NextVertexEdge            (TQ3MeshIterator *        iterator);
  1128.  
  1129. EXTERN_API_C( TQ3MeshVertex )
  1130. Q3Mesh_FirstVertexVertex        (TQ3MeshVertex             vertex,
  1131.                                  TQ3MeshIterator *        iterator);
  1132.  
  1133. EXTERN_API_C( TQ3MeshVertex )
  1134. Q3Mesh_NextVertexVertex            (TQ3MeshIterator *        iterator);
  1135.  
  1136. EXTERN_API_C( TQ3MeshFace )
  1137. Q3Mesh_FirstVertexFace            (TQ3MeshVertex             vertex,
  1138.                                  TQ3MeshIterator *        iterator);
  1139.  
  1140. EXTERN_API_C( TQ3MeshFace )
  1141. Q3Mesh_NextVertexFace            (TQ3MeshIterator *        iterator);
  1142.  
  1143. EXTERN_API_C( TQ3MeshEdge )
  1144. Q3Mesh_FirstFaceEdge            (TQ3MeshFace             face,
  1145.                                  TQ3MeshIterator *        iterator);
  1146.  
  1147. EXTERN_API_C( TQ3MeshEdge )
  1148. Q3Mesh_NextFaceEdge                (TQ3MeshIterator *        iterator);
  1149.  
  1150. EXTERN_API_C( TQ3MeshVertex )
  1151. Q3Mesh_FirstFaceVertex            (TQ3MeshFace             face,
  1152.                                  TQ3MeshIterator *        iterator);
  1153.  
  1154. EXTERN_API_C( TQ3MeshVertex )
  1155. Q3Mesh_NextFaceVertex            (TQ3MeshIterator *        iterator);
  1156.  
  1157. EXTERN_API_C( TQ3MeshFace )
  1158. Q3Mesh_FirstFaceFace            (TQ3MeshFace             face,
  1159.                                  TQ3MeshIterator *        iterator);
  1160.  
  1161. EXTERN_API_C( TQ3MeshFace )
  1162. Q3Mesh_NextFaceFace                (TQ3MeshIterator *        iterator);
  1163.  
  1164. EXTERN_API_C( TQ3MeshContour )
  1165. Q3Mesh_FirstFaceContour            (TQ3MeshFace             face,
  1166.                                  TQ3MeshIterator *        iterator);
  1167.  
  1168. EXTERN_API_C( TQ3MeshContour )
  1169. Q3Mesh_NextFaceContour            (TQ3MeshIterator *        iterator);
  1170.  
  1171. EXTERN_API_C( TQ3MeshEdge )
  1172. Q3Mesh_FirstContourEdge            (TQ3MeshContour         contour,
  1173.                                  TQ3MeshIterator *        iterator);
  1174.  
  1175. EXTERN_API_C( TQ3MeshEdge )
  1176. Q3Mesh_NextContourEdge            (TQ3MeshIterator *        iterator);
  1177.  
  1178. EXTERN_API_C( TQ3MeshVertex )
  1179. Q3Mesh_FirstContourVertex        (TQ3MeshContour         contour,
  1180.                                  TQ3MeshIterator *        iterator);
  1181.  
  1182. EXTERN_API_C( TQ3MeshVertex )
  1183. Q3Mesh_NextContourVertex        (TQ3MeshIterator *        iterator);
  1184.  
  1185. EXTERN_API_C( TQ3MeshFace )
  1186. Q3Mesh_FirstContourFace            (TQ3MeshContour         contour,
  1187.                                  TQ3MeshIterator *        iterator);
  1188.  
  1189. EXTERN_API_C( TQ3MeshFace )
  1190. Q3Mesh_NextContourFace            (TQ3MeshIterator *        iterator);
  1191.  
  1192.  
  1193. #define    Q3ForEachMeshComponent(m,c,i)                                        \
  1194.     for ( (c) = Q3Mesh_FirstMeshComponent((m),(i));                            \
  1195.           (c);                                                                \
  1196.           (c) = Q3Mesh_NextMeshComponent((i)) )
  1197.  
  1198. #define Q3ForEachComponentVertex(c,v,i)                                        \
  1199.     for ( (v) = Q3Mesh_FirstComponentVertex((c),(i));                        \
  1200.           (v);                                                                \
  1201.           (v) = Q3Mesh_NextComponentVertex((i)) )
  1202.           
  1203. #define Q3ForEachComponentEdge(c,e,i)                                        \
  1204.     for ( (e) = Q3Mesh_FirstComponentEdge((c),(i));                            \
  1205.           (e);                                                                \
  1206.           (e) = Q3Mesh_NextComponentEdge((i)) )
  1207.  
  1208. #define Q3ForEachMeshVertex(m,v,i)                                            \
  1209.     for ( (v) = Q3Mesh_FirstMeshVertex((m),(i));                            \
  1210.           (v);                                                                \
  1211.           (v) = Q3Mesh_NextMeshVertex((i)) )
  1212.  
  1213. #define Q3ForEachMeshFace(m,f,i)                                            \
  1214.     for ( (f) = Q3Mesh_FirstMeshFace((m),(i));                                \
  1215.           (f);                                                                \
  1216.           (f) = Q3Mesh_NextMeshFace((i)) )
  1217.  
  1218. #define Q3ForEachMeshEdge(m,e,i)                                            \
  1219.     for ( (e) = Q3Mesh_FirstMeshEdge((m),(i));                                \
  1220.           (e);                                                                \
  1221.           (e) = Q3Mesh_NextMeshEdge((i)) )
  1222.  
  1223. #define Q3ForEachVertexEdge(v,e,i)                                            \
  1224.     for ( (e) = Q3Mesh_FirstVertexEdge((v),(i));                            \
  1225.           (e);                                                                \
  1226.           (e) = Q3Mesh_NextVertexEdge((i)) )
  1227.  
  1228.  
  1229. #define Q3ForEachVertexVertex(v,n,i)                                        \
  1230.     for ( (n) = Q3Mesh_FirstVertexVertex((v),(i));                            \
  1231.           (n);                                                                \
  1232.           (n) = Q3Mesh_NextVertexVertex((i)) )
  1233.  
  1234. #define Q3ForEachVertexFace(v,f,i)                                            \
  1235.     for ( (f) = Q3Mesh_FirstVertexFace((v),(i));                            \
  1236.           (f);                                                                \
  1237.           (f) = Q3Mesh_NextVertexFace((i)) )
  1238.  
  1239. #define Q3ForEachFaceEdge(f,e,i)                                            \
  1240.     for ( (e) = Q3Mesh_FirstFaceEdge((f),(i));                                \
  1241.           (e);                                                                \
  1242.           (e) = Q3Mesh_NextFaceEdge((i)) )
  1243.  
  1244. #define Q3ForEachFaceVertex(f,v,i)                                            \
  1245.     for ( (v) = Q3Mesh_FirstFaceVertex((f),(i));                            \
  1246.           (v);                                                                \
  1247.           (v) = Q3Mesh_NextFaceVertex((i)) )
  1248.     
  1249. #define Q3ForEachFaceFace(f,n,i)                                            \
  1250.     for ( (n) = Q3Mesh_FirstFaceFace((f),(i));                              \
  1251.           (n);                                                                \
  1252.           (n) = Q3Mesh_NextFaceFace((i)) )
  1253.           
  1254. #define Q3ForEachFaceContour(f,h,i)                                            \
  1255.     for ( (h) = Q3Mesh_FirstFaceContour((f),(i));                            \
  1256.           (h);                                                                \
  1257.           (h) = Q3Mesh_NextFaceContour((i)) )
  1258.  
  1259. #define Q3ForEachContourEdge(h,e,i)                                            \
  1260.     for ( (e) = Q3Mesh_FirstContourEdge((h),(i));                            \
  1261.           (e);                                                                \
  1262.           (e) = Q3Mesh_NextContourEdge((i)) )
  1263.  
  1264. #define Q3ForEachContourVertex(h,v,i)                                        \
  1265.     for ( (v) = Q3Mesh_FirstContourVertex((h),(i));                            \
  1266.           (v);                                                                \
  1267.           (v) = Q3Mesh_NextContourVertex((i)) )
  1268.  
  1269. #define Q3ForEachContourFace(h,f,i)                                            \
  1270.     for ( (f) = Q3Mesh_FirstContourFace((h),(i));                            \
  1271.           (f);                                                                \
  1272.           (f) = Q3Mesh_NextContourFace((i)) )
  1273.  
  1274.  
  1275.  
  1276. /******************************************************************************
  1277.  **                                                                             **
  1278.  **                            Maximum order for NURB Curves                     **
  1279.  **                                                                             **
  1280.  *****************************************************************************/
  1281. #define kQ3NURBCurveMaxOrder    16
  1282.  
  1283. /******************************************************************************
  1284.  **                                                                             **
  1285.  **                        NURB Data Structure Definitions                         **
  1286.  **                                                                             **
  1287.  *****************************************************************************/
  1288.  
  1289. struct TQ3NURBCurveData {
  1290.     unsigned long                     order;
  1291.     unsigned long                     numPoints;
  1292.     TQ3RationalPoint4D *            controlPoints;
  1293.     float *                            knots;
  1294.     TQ3AttributeSet                 curveAttributeSet;
  1295. };
  1296. typedef struct TQ3NURBCurveData            TQ3NURBCurveData;
  1297. /******************************************************************************
  1298.  **                                                                             **
  1299.  **                                NURB Curve Routines                             **
  1300.  **                                                                             **
  1301.  *****************************************************************************/
  1302. EXTERN_API_C( TQ3GeometryObject )
  1303. Q3NURBCurve_New                    (const TQ3NURBCurveData * curveData);
  1304.  
  1305. EXTERN_API_C( TQ3Status )
  1306. Q3NURBCurve_Submit                (const TQ3NURBCurveData * curveData,
  1307.                                  TQ3ViewObject             view);
  1308.  
  1309. EXTERN_API_C( TQ3Status )
  1310. Q3NURBCurve_SetData                (TQ3GeometryObject         curve,
  1311.                                  const TQ3NURBCurveData * nurbCurveData);
  1312.  
  1313. EXTERN_API_C( TQ3Status )
  1314. Q3NURBCurve_GetData                (TQ3GeometryObject         curve,
  1315.                                  TQ3NURBCurveData *        nurbCurveData);
  1316.  
  1317. EXTERN_API_C( TQ3Status )
  1318. Q3NURBCurve_EmptyData            (TQ3NURBCurveData *        nurbCurveData);
  1319.  
  1320. EXTERN_API_C( TQ3Status )
  1321. Q3NURBCurve_SetControlPoint        (TQ3GeometryObject         curve,
  1322.                                  unsigned long             pointIndex,
  1323.                                  const TQ3RationalPoint4D * point4D);
  1324.  
  1325. EXTERN_API_C( TQ3Status )
  1326. Q3NURBCurve_GetControlPoint        (TQ3GeometryObject         curve,
  1327.                                  unsigned long             pointIndex,
  1328.                                  TQ3RationalPoint4D *    point4D);
  1329.  
  1330. EXTERN_API_C( TQ3Status )
  1331. Q3NURBCurve_SetKnot                (TQ3GeometryObject         curve,
  1332.                                  unsigned long             knotIndex,
  1333.                                  float                     knotValue);
  1334.  
  1335. EXTERN_API_C( TQ3Status )
  1336. Q3NURBCurve_GetKnot                (TQ3GeometryObject         curve,
  1337.                                  unsigned long             knotIndex,
  1338.                                  float *                knotValue);
  1339.  
  1340.  
  1341. /******************************************************************************
  1342.  **                                                                             **
  1343.  **                            Maximum NURB Patch Order                         **
  1344.  **                                                                             **
  1345.  *****************************************************************************/
  1346. #define kQ3NURBPatchMaxOrder    11
  1347. /******************************************************************************
  1348.  **                                                                             **
  1349.  **                        NURB Patch Data Structure Definitions                 **
  1350.  **                                                                             **
  1351.  *****************************************************************************/
  1352.  
  1353. struct TQ3NURBPatchTrimCurveData {
  1354.     unsigned long                     order;
  1355.     unsigned long                     numPoints;
  1356.     TQ3RationalPoint3D *            controlPoints;
  1357.     float *                            knots;
  1358. };
  1359. typedef struct TQ3NURBPatchTrimCurveData TQ3NURBPatchTrimCurveData;
  1360.  
  1361. struct TQ3NURBPatchTrimLoopData {
  1362.     unsigned long                     numTrimCurves;
  1363.     TQ3NURBPatchTrimCurveData *        trimCurves;
  1364. };
  1365. typedef struct TQ3NURBPatchTrimLoopData    TQ3NURBPatchTrimLoopData;
  1366.  
  1367. struct TQ3NURBPatchData {
  1368.     unsigned long                     uOrder;
  1369.     unsigned long                     vOrder;
  1370.     unsigned long                     numRows;
  1371.     unsigned long                     numColumns;
  1372.     TQ3RationalPoint4D *            controlPoints;
  1373.     float *                            uKnots;
  1374.     float *                            vKnots;
  1375.     unsigned long                     numTrimLoops;
  1376.     TQ3NURBPatchTrimLoopData *        trimLoops;
  1377.     TQ3AttributeSet                 patchAttributeSet;
  1378. };
  1379. typedef struct TQ3NURBPatchData            TQ3NURBPatchData;
  1380. /******************************************************************************
  1381.  **                                                                             **
  1382.  **                                NURB Patch Routines                             **
  1383.  **                                                                             **
  1384.  *****************************************************************************/
  1385. EXTERN_API_C( TQ3GeometryObject )
  1386. Q3NURBPatch_New                    (const TQ3NURBPatchData * nurbPatchData);
  1387.  
  1388. EXTERN_API_C( TQ3Status )
  1389. Q3NURBPatch_Submit                (const TQ3NURBPatchData * nurbPatchData,
  1390.                                  TQ3ViewObject             view);
  1391.  
  1392. EXTERN_API_C( TQ3Status )
  1393. Q3NURBPatch_SetData                (TQ3GeometryObject         nurbPatch,
  1394.                                  const TQ3NURBPatchData * nurbPatchData);
  1395.  
  1396. EXTERN_API_C( TQ3Status )
  1397. Q3NURBPatch_GetData                (TQ3GeometryObject         nurbPatch,
  1398.                                  TQ3NURBPatchData *        nurbPatchData);
  1399.  
  1400. EXTERN_API_C( TQ3Status )
  1401. Q3NURBPatch_SetControlPoint        (TQ3GeometryObject         nurbPatch,
  1402.                                  unsigned long             rowIndex,
  1403.                                  unsigned long             columnIndex,
  1404.                                  const TQ3RationalPoint4D * point4D);
  1405.  
  1406. EXTERN_API_C( TQ3Status )
  1407. Q3NURBPatch_GetControlPoint        (TQ3GeometryObject         nurbPatch,
  1408.                                  unsigned long             rowIndex,
  1409.                                  unsigned long             columnIndex,
  1410.                                  TQ3RationalPoint4D *    point4D);
  1411.  
  1412. EXTERN_API_C( TQ3Status )
  1413. Q3NURBPatch_SetUKnot            (TQ3GeometryObject         nurbPatch,
  1414.                                  unsigned long             knotIndex,
  1415.                                  float                     knotValue);
  1416.  
  1417. EXTERN_API_C( TQ3Status )
  1418. Q3NURBPatch_SetVKnot            (TQ3GeometryObject         nurbPatch,
  1419.                                  unsigned long             knotIndex,
  1420.                                  float                     knotValue);
  1421.  
  1422. EXTERN_API_C( TQ3Status )
  1423. Q3NURBPatch_GetUKnot            (TQ3GeometryObject         nurbPatch,
  1424.                                  unsigned long             knotIndex,
  1425.                                  float *                knotValue);
  1426.  
  1427. EXTERN_API_C( TQ3Status )
  1428. Q3NURBPatch_GetVKnot            (TQ3GeometryObject         nurbPatch,
  1429.                                  unsigned long             knotIndex,
  1430.                                  float *                knotValue);
  1431.  
  1432. EXTERN_API_C( TQ3Status )
  1433. Q3NURBPatch_EmptyData            (TQ3NURBPatchData *        nurbPatchData);
  1434.  
  1435.  
  1436.  
  1437.  
  1438. /******************************************************************************
  1439.  **                                                                             **
  1440.  **                        Pixmap Marker Data Structure Definitions             **
  1441.  **                                                                             **
  1442.  *****************************************************************************/
  1443.  
  1444. struct TQ3PixmapMarkerData {
  1445.     TQ3Point3D                         position;
  1446.     long                             xOffset;
  1447.     long                             yOffset;
  1448.     TQ3StoragePixmap                 pixmap;
  1449.     TQ3AttributeSet                 pixmapMarkerAttributeSet;
  1450. };
  1451. typedef struct TQ3PixmapMarkerData        TQ3PixmapMarkerData;
  1452. /******************************************************************************
  1453.  **                                                                             **
  1454.  **                                Pixmap Marker Routines                         **
  1455.  **                                                                             **
  1456.  *****************************************************************************/
  1457. EXTERN_API_C( TQ3GeometryObject )
  1458. Q3PixmapMarker_New                (const TQ3PixmapMarkerData * pixmapMarkerData);
  1459.  
  1460. EXTERN_API_C( TQ3Status )
  1461. Q3PixmapMarker_Submit            (const TQ3PixmapMarkerData * pixmapMarkerData,
  1462.                                  TQ3ViewObject             view);
  1463.  
  1464. EXTERN_API_C( TQ3Status )
  1465. Q3PixmapMarker_SetData            (TQ3GeometryObject         geometry,
  1466.                                  const TQ3PixmapMarkerData * pixmapMarkerData);
  1467.  
  1468. EXTERN_API_C( TQ3Status )
  1469. Q3PixmapMarker_GetData            (TQ3GeometryObject         geometry,
  1470.                                  TQ3PixmapMarkerData *    pixmapMarkerData);
  1471.  
  1472. EXTERN_API_C( TQ3Status )
  1473. Q3PixmapMarker_EmptyData        (TQ3PixmapMarkerData *    pixmapMarkerData);
  1474.  
  1475. EXTERN_API_C( TQ3Status )
  1476. Q3PixmapMarker_GetPosition        (TQ3GeometryObject         pixmapMarker,
  1477.                                  TQ3Point3D *            position);
  1478.  
  1479. EXTERN_API_C( TQ3Status )
  1480. Q3PixmapMarker_SetPosition        (TQ3GeometryObject         pixmapMarker,
  1481.                                  const TQ3Point3D *        position);
  1482.  
  1483. EXTERN_API_C( TQ3Status )
  1484. Q3PixmapMarker_GetXOffset        (TQ3GeometryObject         pixmapMarker,
  1485.                                  long *                    xOffset);
  1486.  
  1487. EXTERN_API_C( TQ3Status )
  1488. Q3PixmapMarker_SetXOffset        (TQ3GeometryObject         pixmapMarker,
  1489.                                  long                     xOffset);
  1490.  
  1491. EXTERN_API_C( TQ3Status )
  1492. Q3PixmapMarker_GetYOffset        (TQ3GeometryObject         pixmapMarker,
  1493.                                  long *                    yOffset);
  1494.  
  1495. EXTERN_API_C( TQ3Status )
  1496. Q3PixmapMarker_SetYOffset        (TQ3GeometryObject         pixmapMarker,
  1497.                                  long                     yOffset);
  1498.  
  1499. EXTERN_API_C( TQ3Status )
  1500. Q3PixmapMarker_GetPixmap        (TQ3GeometryObject         pixmapMarker,
  1501.                                  TQ3StoragePixmap *        pixmap);
  1502.  
  1503. EXTERN_API_C( TQ3Status )
  1504. Q3PixmapMarker_SetPixmap        (TQ3GeometryObject         pixmapMarker,
  1505.                                  const TQ3StoragePixmap * pixmap);
  1506.  
  1507.  
  1508.  
  1509.  
  1510. /******************************************************************************
  1511.  **                                                                             **
  1512.  **                        Point Data Structure Definitions                     **
  1513.  **                                                                             **
  1514.  *****************************************************************************/
  1515.  
  1516. struct TQ3PointData {
  1517.     TQ3Point3D                         point;
  1518.     TQ3AttributeSet                 pointAttributeSet;
  1519. };
  1520. typedef struct TQ3PointData                TQ3PointData;
  1521. /******************************************************************************
  1522.  **                                                                             **
  1523.  **                                Point Routines                                 **
  1524.  **                                                                             **
  1525.  *****************************************************************************/
  1526. EXTERN_API_C( TQ3GeometryObject )
  1527. Q3Point_New                        (const TQ3PointData *    pointData);
  1528.  
  1529. EXTERN_API_C( TQ3Status )
  1530. Q3Point_Submit                    (const TQ3PointData *    pointData,
  1531.                                  TQ3ViewObject             view);
  1532.  
  1533. EXTERN_API_C( TQ3Status )
  1534. Q3Point_GetData                    (TQ3GeometryObject         point,
  1535.                                  TQ3PointData *            pointData);
  1536.  
  1537. EXTERN_API_C( TQ3Status )
  1538. Q3Point_SetData                    (TQ3GeometryObject         point,
  1539.                                  const TQ3PointData *    pointData);
  1540.  
  1541. EXTERN_API_C( TQ3Status )
  1542. Q3Point_EmptyData                (TQ3PointData *            pointData);
  1543.  
  1544. EXTERN_API_C( TQ3Status )
  1545. Q3Point_SetPosition                (TQ3GeometryObject         point,
  1546.                                  const TQ3Point3D *        position);
  1547.  
  1548. EXTERN_API_C( TQ3Status )
  1549. Q3Point_GetPosition                (TQ3GeometryObject         point,
  1550.                                  TQ3Point3D *            position);
  1551.  
  1552.  
  1553.  
  1554.  
  1555. /******************************************************************************
  1556.  **                                                                             **
  1557.  **                        Polygon Data Structure Definitions                     **
  1558.  **                                                                             **
  1559.  *****************************************************************************/
  1560.  
  1561. struct TQ3PolygonData {
  1562.     unsigned long                     numVertices;
  1563.     TQ3Vertex3D *                    vertices;
  1564.     TQ3AttributeSet                 polygonAttributeSet;
  1565. };
  1566. typedef struct TQ3PolygonData            TQ3PolygonData;
  1567. /******************************************************************************
  1568.  **                                                                             **
  1569.  **                            Polygon Routines                                 **
  1570.  **                                                                             **
  1571.  *****************************************************************************/
  1572. EXTERN_API_C( TQ3GeometryObject )
  1573. Q3Polygon_New                    (const TQ3PolygonData *    polygonData);
  1574.  
  1575. EXTERN_API_C( TQ3Status )
  1576. Q3Polygon_Submit                (const TQ3PolygonData *    polygonData,
  1577.                                  TQ3ViewObject             view);
  1578.  
  1579. EXTERN_API_C( TQ3Status )
  1580. Q3Polygon_SetData                (TQ3GeometryObject         polygon,
  1581.                                  const TQ3PolygonData *    polygonData);
  1582.  
  1583. EXTERN_API_C( TQ3Status )
  1584. Q3Polygon_GetData                (TQ3GeometryObject         polygon,
  1585.                                  TQ3PolygonData *        polygonData);
  1586.  
  1587. EXTERN_API_C( TQ3Status )
  1588. Q3Polygon_EmptyData                (TQ3PolygonData *        polygonData);
  1589.  
  1590. EXTERN_API_C( TQ3Status )
  1591. Q3Polygon_GetVertexPosition        (TQ3GeometryObject         polygon,
  1592.                                  unsigned long             index,
  1593.                                  TQ3Point3D *            point);
  1594.  
  1595. EXTERN_API_C( TQ3Status )
  1596. Q3Polygon_SetVertexPosition        (TQ3GeometryObject         polygon,
  1597.                                  unsigned long             index,
  1598.                                  const TQ3Point3D *        point);
  1599.  
  1600. EXTERN_API_C( TQ3Status )
  1601. Q3Polygon_GetVertexAttributeSet    (TQ3GeometryObject         polygon,
  1602.                                  unsigned long             index,
  1603.                                  TQ3AttributeSet *        attributeSet);
  1604.  
  1605. EXTERN_API_C( TQ3Status )
  1606. Q3Polygon_SetVertexAttributeSet    (TQ3GeometryObject         polygon,
  1607.                                  unsigned long             index,
  1608.                                  TQ3AttributeSet         attributeSet);
  1609.  
  1610.  
  1611.  
  1612.  
  1613. /******************************************************************************
  1614.  **                                                                             **
  1615.  **                        Polyhedron Data Structure Definitions                 **
  1616.  **                                                                             **
  1617.  *****************************************************************************/
  1618.  
  1619. enum TQ3PolyhedronEdgeMasks {
  1620.     kQ3PolyhedronEdgeNone        = 0,
  1621.     kQ3PolyhedronEdge01            = 1 << 0,
  1622.     kQ3PolyhedronEdge12            = 1 << 1,
  1623.     kQ3PolyhedronEdge20            = 1 << 2,
  1624.     kQ3PolyhedronEdgeAll        = kQ3PolyhedronEdge01 | kQ3PolyhedronEdge12 | kQ3PolyhedronEdge20
  1625. };
  1626. typedef enum TQ3PolyhedronEdgeMasks TQ3PolyhedronEdgeMasks;
  1627.  
  1628.  
  1629. typedef unsigned long                     TQ3PolyhedronEdge;
  1630.  
  1631. struct TQ3PolyhedronEdgeData {
  1632.     unsigned long                     vertexIndices[2];
  1633.     unsigned long                     triangleIndices[2];
  1634.     TQ3AttributeSet                 edgeAttributeSet;
  1635. };
  1636. typedef struct TQ3PolyhedronEdgeData    TQ3PolyhedronEdgeData;
  1637.  
  1638. struct TQ3PolyhedronTriangleData {
  1639.     unsigned long                     vertexIndices[3];
  1640.     TQ3PolyhedronEdge                 edgeFlag;
  1641.     TQ3AttributeSet                 triangleAttributeSet;
  1642. };
  1643. typedef struct TQ3PolyhedronTriangleData TQ3PolyhedronTriangleData;
  1644.  
  1645. struct TQ3PolyhedronData {
  1646.     unsigned long                     numVertices;
  1647.     TQ3Vertex3D *                    vertices;
  1648.     unsigned long                     numEdges;
  1649.     TQ3PolyhedronEdgeData *            edges;
  1650.     unsigned long                     numTriangles;
  1651.     TQ3PolyhedronTriangleData *        triangles;
  1652.     TQ3AttributeSet                 polyhedronAttributeSet;
  1653. };
  1654. typedef struct TQ3PolyhedronData        TQ3PolyhedronData;
  1655. /******************************************************************************
  1656.  **                                                                             **
  1657.  **                                Polyhedron Routines                             **
  1658.  **                                                                             **
  1659.  *****************************************************************************/
  1660. EXTERN_API_C( TQ3GeometryObject )
  1661. Q3Polyhedron_New                (const TQ3PolyhedronData * polyhedronData);
  1662.  
  1663. EXTERN_API_C( TQ3Status )
  1664. Q3Polyhedron_Submit                (const TQ3PolyhedronData * polyhedronData,
  1665.                                  TQ3ViewObject             view);
  1666.  
  1667. EXTERN_API_C( TQ3Status )
  1668. Q3Polyhedron_SetData            (TQ3GeometryObject         polyhedron,
  1669.                                  const TQ3PolyhedronData * polyhedronData);
  1670.  
  1671. EXTERN_API_C( TQ3Status )
  1672. Q3Polyhedron_GetData            (TQ3GeometryObject         polyhedron,
  1673.                                  TQ3PolyhedronData *    polyhedronData);
  1674.  
  1675. EXTERN_API_C( TQ3Status )
  1676. Q3Polyhedron_EmptyData            (TQ3PolyhedronData *    polyhedronData);
  1677.  
  1678. EXTERN_API_C( TQ3Status )
  1679. Q3Polyhedron_SetVertexPosition    (TQ3GeometryObject         polyhedron,
  1680.                                  unsigned long             index,
  1681.                                  const TQ3Point3D *        point);
  1682.  
  1683. EXTERN_API_C( TQ3Status )
  1684. Q3Polyhedron_GetVertexPosition    (TQ3GeometryObject         polyhedron,
  1685.                                  unsigned long             index,
  1686.                                  TQ3Point3D *            point);
  1687.  
  1688. EXTERN_API_C( TQ3Status )
  1689. Q3Polyhedron_SetVertexAttributeSet (TQ3GeometryObject     polyhedron,
  1690.                                  unsigned long             index,
  1691.                                  TQ3AttributeSet         attributeSet);
  1692.  
  1693. EXTERN_API_C( TQ3Status )
  1694. Q3Polyhedron_GetVertexAttributeSet (TQ3GeometryObject     polyhedron,
  1695.                                  unsigned long             index,
  1696.                                  TQ3AttributeSet *        attributeSet);
  1697.  
  1698. EXTERN_API_C( TQ3Status )
  1699. Q3Polyhedron_GetTriangleData    (TQ3GeometryObject         polyhedron,
  1700.                                  unsigned long             triangleIndex,
  1701.                                  TQ3PolyhedronTriangleData * triangleData);
  1702.  
  1703. EXTERN_API_C( TQ3Status )
  1704. Q3Polyhedron_SetTriangleData    (TQ3GeometryObject         polyhedron,
  1705.                                  unsigned long             triangleIndex,
  1706.                                  const TQ3PolyhedronTriangleData * triangleData);
  1707.  
  1708. EXTERN_API_C( TQ3Status )
  1709. Q3Polyhedron_GetEdgeData        (TQ3GeometryObject         polyhedron,
  1710.                                  unsigned long             edgeIndex,
  1711.                                  TQ3PolyhedronEdgeData * edgeData);
  1712.  
  1713. EXTERN_API_C( TQ3Status )
  1714. Q3Polyhedron_SetEdgeData        (TQ3GeometryObject         polyhedron,
  1715.                                  unsigned long             edgeIndex,
  1716.                                  const TQ3PolyhedronEdgeData * edgeData);
  1717.  
  1718.  
  1719.  
  1720.  
  1721. /******************************************************************************
  1722.  **                                                                             **
  1723.  **                        PolyLine Data Structure Definitions                     **
  1724.  **                                                                             **
  1725.  *****************************************************************************/
  1726.  
  1727. struct TQ3PolyLineData {
  1728.     unsigned long                     numVertices;
  1729.     TQ3Vertex3D *                    vertices;
  1730.     TQ3AttributeSet *                segmentAttributeSet;
  1731.     TQ3AttributeSet                 polyLineAttributeSet;
  1732. };
  1733. typedef struct TQ3PolyLineData            TQ3PolyLineData;
  1734. /******************************************************************************
  1735.  **                                                                             **
  1736.  **                            PolyLine Routines                                 **
  1737.  **                                                                             **
  1738.  *****************************************************************************/
  1739. EXTERN_API_C( TQ3GeometryObject )
  1740. Q3PolyLine_New                    (const TQ3PolyLineData * polylineData);
  1741.  
  1742. EXTERN_API_C( TQ3Status )
  1743. Q3PolyLine_Submit                (const TQ3PolyLineData * polyLineData,
  1744.                                  TQ3ViewObject             view);
  1745.  
  1746. EXTERN_API_C( TQ3Status )
  1747. Q3PolyLine_SetData                (TQ3GeometryObject         polyLine,
  1748.                                  const TQ3PolyLineData * polyLineData);
  1749.  
  1750. EXTERN_API_C( TQ3Status )
  1751. Q3PolyLine_GetData                (TQ3GeometryObject         polyLine,
  1752.                                  TQ3PolyLineData *        polyLineData);
  1753.  
  1754. EXTERN_API_C( TQ3Status )
  1755. Q3PolyLine_EmptyData            (TQ3PolyLineData *        polyLineData);
  1756.  
  1757. EXTERN_API_C( TQ3Status )
  1758. Q3PolyLine_GetVertexPosition    (TQ3GeometryObject         polyLine,
  1759.                                  unsigned long             index,
  1760.                                  TQ3Point3D *            position);
  1761.  
  1762. EXTERN_API_C( TQ3Status )
  1763. Q3PolyLine_SetVertexPosition    (TQ3GeometryObject         polyLine,
  1764.                                  unsigned long             index,
  1765.                                  const TQ3Point3D *        position);
  1766.  
  1767. EXTERN_API_C( TQ3Status )
  1768. Q3PolyLine_GetVertexAttributeSet (TQ3GeometryObject     polyLine,
  1769.                                  unsigned long             index,
  1770.                                  TQ3AttributeSet *        attributeSet);
  1771.  
  1772. EXTERN_API_C( TQ3Status )
  1773. Q3PolyLine_SetVertexAttributeSet (TQ3GeometryObject     polyLine,
  1774.                                  unsigned long             index,
  1775.                                  TQ3AttributeSet         attributeSet);
  1776.  
  1777. EXTERN_API_C( TQ3Status )
  1778. Q3PolyLine_GetSegmentAttributeSet (TQ3GeometryObject     polyLine,
  1779.                                  unsigned long             index,
  1780.                                  TQ3AttributeSet *        attributeSet);
  1781.  
  1782. EXTERN_API_C( TQ3Status )
  1783. Q3PolyLine_SetSegmentAttributeSet (TQ3GeometryObject     polyLine,
  1784.                                  unsigned long             index,
  1785.                                  TQ3AttributeSet         attributeSet);
  1786.  
  1787.  
  1788.  
  1789.  
  1790.  
  1791. /******************************************************************************
  1792.  **                                                                             **
  1793.  **                        Torus Data Structure Definitions                     **
  1794.  **                                                                             **
  1795.  *****************************************************************************/
  1796.  
  1797. struct TQ3TorusData {
  1798.     TQ3Point3D                         origin;
  1799.     TQ3Vector3D                     orientation;
  1800.     TQ3Vector3D                     majorRadius;
  1801.     TQ3Vector3D                     minorRadius;
  1802.     float                             ratio;
  1803.     float                             uMin;
  1804.     float                             uMax;
  1805.     float                             vMin;
  1806.     float                             vMax;
  1807.     TQ3EndCap                         caps;
  1808.     TQ3AttributeSet                 interiorAttributeSet;
  1809.     TQ3AttributeSet                 torusAttributeSet;
  1810. };
  1811. typedef struct TQ3TorusData                TQ3TorusData;
  1812. /******************************************************************************
  1813.  **                                                                             **
  1814.  **                                Torus Routines                                 **
  1815.  **                                                                             **
  1816.  *****************************************************************************/
  1817. EXTERN_API_C( TQ3GeometryObject )
  1818. Q3Torus_New                        (const TQ3TorusData *    torusData);
  1819.  
  1820. EXTERN_API_C( TQ3Status )
  1821. Q3Torus_Submit                    (const TQ3TorusData *    torusData,
  1822.                                  TQ3ViewObject             view);
  1823.  
  1824. EXTERN_API_C( TQ3Status )
  1825. Q3Torus_SetData                    (TQ3GeometryObject         torus,
  1826.                                  const TQ3TorusData *    torusData);
  1827.  
  1828. EXTERN_API_C( TQ3Status )
  1829. Q3Torus_GetData                    (TQ3GeometryObject         torus,
  1830.                                  TQ3TorusData *            torusData);
  1831.  
  1832. EXTERN_API_C( TQ3Status )
  1833. Q3Torus_SetOrigin                (TQ3GeometryObject         torus,
  1834.                                  const TQ3Point3D *        origin);
  1835.  
  1836. EXTERN_API_C( TQ3Status )
  1837. Q3Torus_SetOrientation            (TQ3GeometryObject         torus,
  1838.                                  const TQ3Vector3D *    orientation);
  1839.  
  1840. EXTERN_API_C( TQ3Status )
  1841. Q3Torus_SetMajorRadius            (TQ3GeometryObject         torus,
  1842.                                  const TQ3Vector3D *    majorRadius);
  1843.  
  1844. EXTERN_API_C( TQ3Status )
  1845. Q3Torus_SetMinorRadius            (TQ3GeometryObject         torus,
  1846.                                  const TQ3Vector3D *    minorRadius);
  1847.  
  1848. EXTERN_API_C( TQ3Status )
  1849. Q3Torus_SetRatio                (TQ3GeometryObject         torus,
  1850.                                  float                     ratio);
  1851.  
  1852. EXTERN_API_C( TQ3Status )
  1853. Q3Torus_GetOrigin                (TQ3GeometryObject         torus,
  1854.                                  TQ3Point3D *            origin);
  1855.  
  1856. EXTERN_API_C( TQ3Status )
  1857. Q3Torus_GetOrientation            (TQ3GeometryObject         torus,
  1858.                                  TQ3Vector3D *            orientation);
  1859.  
  1860. EXTERN_API_C( TQ3Status )
  1861. Q3Torus_GetMajorRadius            (TQ3GeometryObject         torus,
  1862.                                  TQ3Vector3D *            majorRadius);
  1863.  
  1864. EXTERN_API_C( TQ3Status )
  1865. Q3Torus_GetMinorRadius            (TQ3GeometryObject         torus,
  1866.                                  TQ3Vector3D *            minorRadius);
  1867.  
  1868. EXTERN_API_C( TQ3Status )
  1869. Q3Torus_GetRatio                (TQ3GeometryObject         torus,
  1870.                                  float *                ratio);
  1871.  
  1872. EXTERN_API_C( TQ3Status )
  1873. Q3Torus_EmptyData                (TQ3TorusData *            torusData);
  1874.  
  1875.  
  1876.  
  1877.  
  1878. /******************************************************************************
  1879.  **                                                                             **
  1880.  **                        Triangle Data Structure Definitions                     **
  1881.  **                                                                             **
  1882.  *****************************************************************************/
  1883.  
  1884. struct TQ3TriangleData {
  1885.     TQ3Vertex3D                     vertices[3];
  1886.     TQ3AttributeSet                 triangleAttributeSet;
  1887. };
  1888. typedef struct TQ3TriangleData            TQ3TriangleData;
  1889. /******************************************************************************
  1890.  **                                                                             **
  1891.  **                            Triangle Routines                                 **
  1892.  **                                                                             **
  1893.  *****************************************************************************/
  1894. EXTERN_API_C( TQ3GeometryObject )
  1895. Q3Triangle_New                    (const TQ3TriangleData * triangleData);
  1896.  
  1897. EXTERN_API_C( TQ3Status )
  1898. Q3Triangle_Submit                (const TQ3TriangleData * triangleData,
  1899.                                  TQ3ViewObject             view);
  1900.  
  1901. EXTERN_API_C( TQ3Status )
  1902. Q3Triangle_SetData                (TQ3GeometryObject         triangle,
  1903.                                  const TQ3TriangleData * triangleData);
  1904.  
  1905. EXTERN_API_C( TQ3Status )
  1906. Q3Triangle_GetData                (TQ3GeometryObject         triangle,
  1907.                                  TQ3TriangleData *        triangleData);
  1908.  
  1909. EXTERN_API_C( TQ3Status )
  1910. Q3Triangle_EmptyData            (TQ3TriangleData *        triangleData);
  1911.  
  1912. EXTERN_API_C( TQ3Status )
  1913. Q3Triangle_GetVertexPosition    (TQ3GeometryObject         triangle,
  1914.                                  unsigned long             index,
  1915.                                  TQ3Point3D *            point);
  1916.  
  1917. EXTERN_API_C( TQ3Status )
  1918. Q3Triangle_SetVertexPosition    (TQ3GeometryObject         triangle,
  1919.                                  unsigned long             index,
  1920.                                  const TQ3Point3D *        point);
  1921.  
  1922. EXTERN_API_C( TQ3Status )
  1923. Q3Triangle_GetVertexAttributeSet (TQ3GeometryObject     triangle,
  1924.                                  unsigned long             index,
  1925.                                  TQ3AttributeSet *        attributeSet);
  1926.  
  1927. EXTERN_API_C( TQ3Status )
  1928. Q3Triangle_SetVertexAttributeSet (TQ3GeometryObject     triangle,
  1929.                                  unsigned long             index,
  1930.                                  TQ3AttributeSet         attributeSet);
  1931.  
  1932.  
  1933.  
  1934.  
  1935. /******************************************************************************
  1936.  **                                                                             **
  1937.  **                        TriGrid Data Structure Definitions                     **
  1938.  **                                                                             **
  1939.  *****************************************************************************/
  1940.  
  1941. struct TQ3TriGridData {
  1942.     unsigned long                     numRows;
  1943.     unsigned long                     numColumns;
  1944.     TQ3Vertex3D *                    vertices;
  1945.     TQ3AttributeSet *                facetAttributeSet;
  1946.     TQ3AttributeSet                 triGridAttributeSet;
  1947. };
  1948. typedef struct TQ3TriGridData            TQ3TriGridData;
  1949. /******************************************************************************
  1950.  **                                                                             **
  1951.  **                                TriGrid Routines                             **
  1952.  **                                                                             **
  1953.  *****************************************************************************/
  1954. EXTERN_API_C( TQ3GeometryObject )
  1955. Q3TriGrid_New                    (const TQ3TriGridData *    triGridData);
  1956.  
  1957. EXTERN_API_C( TQ3Status )
  1958. Q3TriGrid_Submit                (const TQ3TriGridData *    triGridData,
  1959.                                  TQ3ViewObject             view);
  1960.  
  1961. EXTERN_API_C( TQ3Status )
  1962. Q3TriGrid_SetData                (TQ3GeometryObject         triGrid,
  1963.                                  const TQ3TriGridData *    triGridData);
  1964.  
  1965. EXTERN_API_C( TQ3Status )
  1966. Q3TriGrid_GetData                (TQ3GeometryObject         triGrid,
  1967.                                  TQ3TriGridData *        triGridData);
  1968.  
  1969. EXTERN_API_C( TQ3Status )
  1970. Q3TriGrid_EmptyData                (TQ3TriGridData *        triGridData);
  1971.  
  1972. EXTERN_API_C( TQ3Status )
  1973. Q3TriGrid_GetVertexPosition        (TQ3GeometryObject         triGrid,
  1974.                                  unsigned long             rowIndex,
  1975.                                  unsigned long             columnIndex,
  1976.                                  TQ3Point3D *            position);
  1977.  
  1978. EXTERN_API_C( TQ3Status )
  1979. Q3TriGrid_SetVertexPosition        (TQ3GeometryObject         triGrid,
  1980.                                  unsigned long             rowIndex,
  1981.                                  unsigned long             columnIndex,
  1982.                                  const TQ3Point3D *        position);
  1983.  
  1984. EXTERN_API_C( TQ3Status )
  1985. Q3TriGrid_GetVertexAttributeSet    (TQ3GeometryObject         triGrid,
  1986.                                  unsigned long             rowIndex,
  1987.                                  unsigned long             columnIndex,
  1988.                                  TQ3AttributeSet *        attributeSet);
  1989.  
  1990. EXTERN_API_C( TQ3Status )
  1991. Q3TriGrid_SetVertexAttributeSet    (TQ3GeometryObject         triGrid,
  1992.                                  unsigned long             rowIndex,
  1993.                                  unsigned long             columnIndex,
  1994.                                  TQ3AttributeSet         attributeSet);
  1995.  
  1996. EXTERN_API_C( TQ3Status )
  1997. Q3TriGrid_GetFacetAttributeSet    (TQ3GeometryObject         triGrid,
  1998.                                  unsigned long             faceIndex,
  1999.                                  TQ3AttributeSet *        facetAttributeSet);
  2000.  
  2001. EXTERN_API_C( TQ3Status )
  2002. Q3TriGrid_SetFacetAttributeSet    (TQ3GeometryObject         triGrid,
  2003.                                  unsigned long             faceIndex,
  2004.                                  TQ3AttributeSet         facetAttributeSet);
  2005.  
  2006.  
  2007.  
  2008.  
  2009. /******************************************************************************
  2010.  **                                                                             **
  2011.  **                        TriMesh Data Structure Definitions                     **
  2012.  **                                                                             **
  2013.  *****************************************************************************/
  2014.  
  2015. struct TQ3TriMeshTriangleData {
  2016.     unsigned long                     pointIndices[3];
  2017. };
  2018. typedef struct TQ3TriMeshTriangleData    TQ3TriMeshTriangleData;
  2019.  
  2020. struct TQ3TriMeshEdgeData {
  2021.     unsigned long                     pointIndices[2];
  2022.     unsigned long                     triangleIndices[2];
  2023. };
  2024. typedef struct TQ3TriMeshEdgeData        TQ3TriMeshEdgeData;
  2025.  
  2026. struct TQ3TriMeshAttributeData {
  2027.     TQ3AttributeType                 attributeType;                /* The type of attribute          */
  2028.     void *                            data;                        /* Pointer to the contiguous     */
  2029.                                                                 /* attribute data.                 */
  2030.     char *                            attributeUseArray;            /* This is only used with custom */
  2031.                                                                 /* attributes                      */
  2032. };
  2033. typedef struct TQ3TriMeshAttributeData    TQ3TriMeshAttributeData;
  2034.  
  2035. struct TQ3TriMeshData {
  2036.     TQ3AttributeSet                 triMeshAttributeSet;
  2037.  
  2038.     unsigned long                     numTriangles;
  2039.     TQ3TriMeshTriangleData *        triangles;
  2040.  
  2041.     unsigned long                     numTriangleAttributeTypes;
  2042.     TQ3TriMeshAttributeData *        triangleAttributeTypes;
  2043.  
  2044.     unsigned long                     numEdges;
  2045.     TQ3TriMeshEdgeData *            edges;
  2046.  
  2047.     unsigned long                     numEdgeAttributeTypes;
  2048.     TQ3TriMeshAttributeData *        edgeAttributeTypes;
  2049.  
  2050.     unsigned long                     numPoints;
  2051.     TQ3Point3D *                    points;
  2052.  
  2053.     unsigned long                     numVertexAttributeTypes;
  2054.     TQ3TriMeshAttributeData *        vertexAttributeTypes;
  2055.  
  2056.     TQ3BoundingBox                     bBox;
  2057. };
  2058. typedef struct TQ3TriMeshData            TQ3TriMeshData;
  2059. /******************************************************************************
  2060.  **                                                                             **
  2061.  **                            TriMesh Routines                                 **
  2062.  **                                                                             **
  2063.  *****************************************************************************/
  2064. EXTERN_API_C( TQ3GeometryObject )
  2065. Q3TriMesh_New                    (const TQ3TriMeshData *    triMeshData);
  2066.  
  2067. EXTERN_API_C( TQ3Status )
  2068. Q3TriMesh_Submit                (const TQ3TriMeshData *    triMeshData,
  2069.                                  TQ3ViewObject             view);
  2070.  
  2071. EXTERN_API_C( TQ3Status )
  2072. Q3TriMesh_SetData                (TQ3GeometryObject         triMesh,
  2073.                                  const TQ3TriMeshData *    triMeshData);
  2074.  
  2075. EXTERN_API_C( TQ3Status )
  2076. Q3TriMesh_GetData                (TQ3GeometryObject         triMesh,
  2077.                                  TQ3TriMeshData *        triMeshData);
  2078.  
  2079. EXTERN_API_C( TQ3Status )
  2080. Q3TriMesh_EmptyData                (TQ3TriMeshData *        triMeshData);
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086. #if PRAGMA_ENUM_ALWAYSINT
  2087.     #pragma enumsalwaysint reset
  2088. #elif PRAGMA_ENUM_OPTIONS
  2089.     #pragma option enum=reset
  2090. #elif defined(PRAGMA_ENUM_PACK__QD3DGEOMETRY__)
  2091.     #pragma options(pack_enums)
  2092. #endif
  2093.  
  2094. #if PRAGMA_STRUCT_ALIGN
  2095.     #pragma options align=reset
  2096. #elif PRAGMA_STRUCT_PACKPUSH
  2097.     #pragma pack(pop)
  2098. #elif PRAGMA_STRUCT_PACK
  2099.     #pragma pack()
  2100. #endif
  2101.  
  2102. #ifdef PRAGMA_IMPORT_OFF
  2103. #pragma import off
  2104. #elif PRAGMA_IMPORT
  2105. #pragma import reset
  2106. #endif
  2107.  
  2108. #ifdef __cplusplus
  2109. }
  2110. #endif
  2111.  
  2112. #endif /* __QD3DGEOMETRY__ */
  2113.  
  2114.